package magchess10.rn.utils;

import java.util.ArrayList;
import java.util.List;

import magchess10.rn.tabuleiro.Casa;

public class TabuleiroUtils {

	public static String  getColor (int linha, int coluna) {
		return (linha + coluna) % 2 ==0 ? "Black" : "White";
	}
	
	public static String getCorOposta(String corTestada) {
        return (corTestada.equals("Branca") ? "Preta" : "Branca");
    }
	
	public static String montaStringSecundario(Casa casaFinal, String p_nomePeca,
			String p_corPeca) {
		String l_color = TabuleiroUtils.getColor(casaFinal.getLinha(),
				casaFinal.getColuna());
		return "/magchess10/ImagensTabuleiroSecundario/" + p_nomePeca
				+ p_corPeca + l_color + ".jpg";

	}
	
	public static String montaStringPrincipal(Casa p_casaFinal, String p_nomePeca,
			String p_corPeca) {

		return "/magchess10/ImagensTabuleiroPrincipal/" + p_nomePeca
				+ p_corPeca + getCorCasa(p_casaFinal) + ".jpg";
	}

	public static String montarStringRepositorioPrincipal(String nomePeca,
			String corPeca) {
		return "/magchess10/ImagensRepositorioSecundario/" + nomePeca + corPeca
				+ "White.jpg";
	}

	public static String montarStringPrincipal(String nomePeca, String corPeca) {
		return "/magchess10/ImagensTabuleiroPrincipal/" + nomePeca + corPeca
				+ "White.jpg";
	}

	public static String getCorCasa(int p_colunaAtual, int p_linhaAtual) {
		if (p_linhaAtual % 2 == 0)
			return (p_colunaAtual % 2 == 0 ? "Black" : "White");
		return (p_colunaAtual % 2 != 0 ? "Black" : "White");

	}
	
	public static String getCorCasa(Casa p_casaAtual) {
		return (getParidade(p_casaAtual) == 0 ? "Black" : "White");
	}
	
	private static int getParidade(Casa p_casaAtual) {
		return (p_casaAtual.getColuna() + p_casaAtual.getLinha()) % 2;
	}
	
	public static List<Casa> getCasasAdjacentes (Casa casa){
		List <Casa> casasAdjacentes = new ArrayList<Casa> ();
		int colunaCasa = casa.getColuna();
		int linhaCasa = casa.getLinha();
		
		if (linhaCasa > 0)
			casasAdjacentes.add(new Casa(linhaCasa -1,colunaCasa ));
		if (linhaCasa < 7)
			casasAdjacentes.add(new Casa(linhaCasa + 1,colunaCasa ));
		
		if (colunaCasa >0) {
			casasAdjacentes.add(new Casa(linhaCasa,colunaCasa -1));
			if (linhaCasa > 0)
				casasAdjacentes.add(new Casa(linhaCasa -1,colunaCasa -1));
			if (linhaCasa <7)
				casasAdjacentes.add(new Casa(linhaCasa + 1,colunaCasa -1));
		}
		
		if (colunaCasa < 7) {
			casasAdjacentes.add(new Casa(linhaCasa,colunaCasa + 1));
			if (linhaCasa > 0)
				casasAdjacentes.add(new Casa(linhaCasa -1,colunaCasa + 1));
			if (linhaCasa <7)
				casasAdjacentes.add(new Casa(linhaCasa + 1,colunaCasa + 1));
		}
		
		
		
		return casasAdjacentes;
	}
	
	
}
